﻿using BLevy.Entidad;
using BLevy.Negocio;
using Microsoft.Reporting.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmCobradorLiquidacionReporte : Form
    {
        private int id;
        public frmCobradorLiquidacionReporte(int _id)
        {
            InitializeComponent();

            id = _id;
        }

        private void frmCobradorLiquidacionReporte_Load(object sender, EventArgs e)
        {
            try
            {
                var query = (from row in CobradoresLiquidaciones.FindByIdLiquidacion(id)
                             select new
                             {
                                 FECHA_LIQUIDACION = row.cobrador_liquidacion.fecha_liquidacion,
                                 TOTAL = row.cobrador_liquidacion.total,
                                 NOMBRES = row.cobrador_liquidacion.cobrador.nombres,
                                 APELLIDO = row.cobrador_liquidacion.cobrador.apellido,
                                 COMISION = row.comision,
                                 NUMERO = row.cobrador_cobro.cobro.cupon.numero
                             }).ToList();


                //DataTable tablaGeneral = query.CopyToDataTable();

                ReportDataSource rds = new ReportDataSource();
                ReportDataSource rds2 = new ReportDataSource();
                ReportDataSource rds3 = new ReportDataSource();

                int count = 1;

                DataTable Tabla1 = new DataTable();
                Tabla1.Columns.AddRange(new[] { new DataColumn("FECHA_LIQUIDACION"), new DataColumn("TOTAL"), new DataColumn("NOMBRES"), new DataColumn("APELLIDO"), new DataColumn("COMISION"), new DataColumn("NUMERO") });
                DataTable Tabla2 = new DataTable();
                Tabla2.Columns.AddRange(new[] { new DataColumn("FECHA_LIQUIDACION"), new DataColumn("TOTAL"), new DataColumn("NOMBRES"), new DataColumn("APELLIDO"), new DataColumn("COMISION"), new DataColumn("NUMERO") });
                DataTable Tabla3 = new DataTable();
                Tabla3.Columns.AddRange(new[] { new DataColumn("FECHA_LIQUIDACION"), new DataColumn("TOTAL"), new DataColumn("NOMBRES"), new DataColumn("APELLIDO"), new DataColumn("COMISION"), new DataColumn("NUMERO") });

                foreach (var item in query)
                {
                    if (count == 1)
                    {
                        Tabla1.Rows.Add(item.FECHA_LIQUIDACION, item.TOTAL, item.NOMBRES, item.APELLIDO, item.COMISION, item.NUMERO);
                    }
                    if (count == 2)
                    {
                        Tabla2.Rows.Add(item.FECHA_LIQUIDACION, item.TOTAL, item.NOMBRES, item.APELLIDO, item.COMISION, item.NUMERO);
                    }
                    if (count == 3)
                    {
                        Tabla3.Rows.Add(item.FECHA_LIQUIDACION, item.TOTAL, item.NOMBRES, item.APELLIDO, item.COMISION, item.NUMERO);
                    }

                    count++;
                    if (count == 4)
                    {
                        count = 1;
                    }
                }


                rds = new ReportDataSource("DataSet1", Tabla1);
                rds2 = new ReportDataSource("DataSet2", Tabla2);
                rds3 = new ReportDataSource("DataSet3", Tabla3);

                this.reportViewer1.LocalReport.ReportEmbeddedResource = "BLevy.UI.Reportes.CobradoresLiquidacionReporte.rdlc";

                this.reportViewer1.LocalReport.DataSources.Add(rds);
                this.reportViewer1.LocalReport.DataSources.Add(rds2);
                this.reportViewer1.LocalReport.DataSources.Add(rds3);
                this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth;
                this.reportViewer1.RefreshReport();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
